Auto merge of #4299 - brson:home, r=alexcrichton
authorbors <bors@rust-lang.org>
Wed, 19 Jul 2017 02:10:52 +0000 (02:10 +0000)
committerbors <bors@rust-lang.org>
Wed, 19 Jul 2017 02:10:52 +0000 (02:10 +0000)
Replace homedir definition with home crate

This pulls out the definitions of these functions into a single crate, [home](https://github.com/brson/home), to act as their canonical definition.

This has a bigger impact on rustup, since it is using  definitions of all these things, where cargo is just defining cargo_home in terms of std's wrong home_dir.

The [definition of cargo_home](https://github.com/brson/home/blob/master/src/lib.rs#L179) used here is slightly different than what cargo has today in that it contains a bit of defensive code to avoid allowing `CARGO_HOME` to be set to `.multirust/cargo` - this is backwards compatibility code from rustup.


Trivial merge